<?php
App::uses('AppController', 'Controller');
App::uses('AuthComponent', 'Controller/Component');
/**
 * BemPatrimonials Controller
 *
 * @property BemPatrimonial $BemPatrimonial
 */
class InventariosController extends AppController {
	var $helpers = array('Html', 'Form', 'Js','Maskedit','Ajaxloaderinfo');
	var $uses = array('BemPatrimonial', 'Inventario', 'Grupo', 'Estadoconservacao', 'Unidade','ContaContabil', 'User');
	var $paginate = array();

/**
 * index method
 *
 * @return void
 */
	public function index() {
		$estados = $this->Estadoconservacao->find('list', array('order' => array('Estadoconservacao.estado_conservacao' => 'ASC')));
		$unidades = $this->Unidade->find('list', array('order' => array('Unidade.descricao' => 'ASC')));
		$grupos = $this->Grupo->find('list', array('order' => array('Grupo.grupo' => 'ASC')));
		
		$this->BemPatrimonial->recursive = 2;
		if (isset($this->data) && !empty($this->data)){
			
			$condit['BemPatrimonial.data_baixa'] = NULL;
			$condit['BemPatrimonial.data_inventario'] = NULL;
			
			if(!empty($this->data['Inventario']['unidade_id'])){
				$condit['BemPatrimonial.unidade_id'] = $this->data['Inventario']['unidade_id'];
			} 
			if(!empty($this->data['Inventario']['grupo_id'])){
				$condit['Produto.grupo_id'] = $this->data['Inventario']['grupo_id'];
			}
            
			$options = array(
					'conditions' => $condit,
					'order' => array('BemPatrimonial.numero_bem' => 'ASC'),
			);
		}else{
			
			$options = array(
					'conditions' => array('BemPatrimonial.data_baixa' => NULL, 'BemPatrimonial.data_inventario' => NULL),
					'order' => array('BemPatrimonial.numero_bem' => 'ASC'),
			);
		}
		
		$this->paginate['BemPatrimonial'] = $options;
		$this->set('unidades',$unidades);
		$this->set('grupos',$grupos);
		$this->set('estados',$estados);
		$this->set('bemPatrimonials', $this->paginate('BemPatrimonial'));
	}

/**
 * view method
 *
 * @param string $id
 * @return void
 */
	public function view($id = null) {
		$this->BemPatrimonial->id = $id;
		if (!$this->BemPatrimonial->exists()) {
			throw new NotFoundException(__('Invalid bem patrimonial'));
		}
		$this->set('bemPatrimonial', $this->BemPatrimonial->read(null, $id));
	}

/**
 * add method
 *
 * @return void
 */
	public function add() {
		if ($this->request->is('post')) {
			$this->BemPatrimonial->create();
			if ($this->BemPatrimonial->save($this->request->data)) {
				$this->Session->setFlash(__('The bem patrimonial has been saved'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The bem patrimonial could not be saved. Please, try again.'));
			}
		}
		$produtos = $this->BemPatrimonial->Produto->find('list');
		$contacontabils = $this->BemPatrimonial->Contacontabil->find('list');
		$fornecedors = $this->BemPatrimonial->Fornecedor->find('list');
		$fabricantes = $this->BemPatrimonial->Fabricante->find('list');
		$this->set(compact('produtos', 'contacontabils', 'fornecedors', 'fabricantes'));
	}

/**
 * edit method
 *
 * @param string $id
 * @return void
 */
	public function edit($id = null) {
		$this->BemPatrimonial->id = $id;
		if (!$this->BemPatrimonial->exists()) {
			throw new NotFoundException(__('Invalid bem patrimonial'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			if ($this->BemPatrimonial->save($this->request->data)) {
				$this->Session->setFlash(__('The bem patrimonial has been saved'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The bem patrimonial could not be saved. Please, try again.'));
			}
		} else {
			$this->request->data = $this->BemPatrimonial->read(null, $id);
		}
		$produtos = $this->BemPatrimonial->Produto->find('list');
		$contacontabils = $this->BemPatrimonial->Contacontabil->find('list');
		$fornecedors = $this->BemPatrimonial->Fornecedor->find('list');
		$fabricantes = $this->BemPatrimonial->Fabricante->find('list');
		$this->set(compact('produtos', 'contacontabils', 'fornecedors', 'fabricantes'));
	}
	
	
	public function save($id = null) {
	//	public function save($id = null, $conservacao = null) {
		$this->BemPatrimonial->id = $id;
		if (!$this->BemPatrimonial->exists()) {
			throw new NotFoundException(__('Invalid bem patrimonial'));
		}
		
		
		if ($this->request->is('post') || $this->request->is('put')) {
			
			$bem['BemPatrimonial']['id'] = $id;
			$bem['BemPatrimonial']['estadoconservacao_id'] = $this->data['Inventario']['estadoconservacao_id_'.$id];
			$bem['BemPatrimonial']['data_inventario'] = date("d/m/Y");
				
			if ($this->BemPatrimonial->save($bem)) {
				$this->Session->setFlash(__('O bem patrimonial foi inventariado'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('o bem patrimonial n�o pode ser inventariado. Tente novamente.'));
			}
		}
		$this->redirect(array('action' => 'index'));
	}
	

/**
 * delete method
 *
 * @param string $id
 * @return void
 */
	public function delete($id = null) {
		if (!$this->request->is('post')) {
			throw new MethodNotAllowedException();
		}
		$this->BemPatrimonial->id = $id;
		if (!$this->BemPatrimonial->exists()) {
			throw new NotFoundException(__('Invalid bem patrimonial'));
		}
		if ($this->BemPatrimonial->delete()) {
			$this->Session->setFlash(__('Bem patrimonial deleted'));
			$this->redirect(array('action' => 'index'));
		}
		$this->Session->setFlash(__('Bem patrimonial was not deleted'));
		$this->redirect(array('action' => 'index'));
	}
}
